//缓存客户端浏览器信息.
var UA = navigator.userAgent;

/**
 * 页面准备就绪.
 */
function ready($) {

	//单击返回顶部按钮执行滚动条置顶动画.
	$(".retop").on("click", function(e) {

		//当前元素清除计时器，并且设置激活效果，执行火箭升天动画.
		$(this).addClass("actived");

		setTimeout((function() {
			$(this).removeClass("actived");
		}).bind(this), 1200);

		//视窗执行返回顶部动画.
		$("html, body").filter(":not(:animated)").animate({"scrollTop":0}, "slow");
	});

	$(window).on({
		hashchange: function(e) {
			//console.log(e);
		},
		scroll: function() {

			var $win = $(this);
			var windowHeight = $win.height(),
					documentHeight = $(document).height(),
					//窗口当前滚动距离.
					scrollTop = $win.scrollTop(),
					//滚动距边界间隙值，确保响应滚动的时候更灵活.
					scrollHeight = 200;

			//窗口滚动离开顶部一定范围.
			if(scrollTop >= scrollHeight) {
				$(".retop").show();
			} else {
				$(".retop:not(.actived)").hide();
			}

		}
	}).triggerHandler('scroll');

	//如果评论开启，则自动初始化评论.
	$("#comment-box").length && !function() {

		function duoshuoInit() {
			//获取评论容器 jQuery DOM 缓存.
			var $commentBox = $("#comment-box");
			//缓存自定义属性值.
			var threadKey = $commentBox.data("thread-key"),
					url = $commentBox.data("url"),
					title = $commentBox.data("title");
					author = $commentBox.data("author");
			//创建多说评论DIV容器.
			var el = document.createElement('div');
			//设置多说评论自定义属性.
			el.setAttribute('data-thread-key', threadKey);
			el.setAttribute('data-url', url);
			el.setAttribute('data-title', title);
			el.setAttribute('data-author-key', author);

			//el.style.display = "none";

			//调用多说方法.
			DUOSHUO.EmbedThread(el);

			//把生成好的内容放到到评论容器.
			return $commentBox.html("").append(el);
		}

		//如果放了多说评论插件，则初始化它.
		window["DUOSHUO"]
			? duoshuoInit()
			: $.getScript('/js/embed.js').then(duoshuoInit, function() {
				console.log("多说评论JS插件加载失败…");
			});


	}();

	//根据当前网址，改变选中对应的导航条选项.
	$("#navigation > a[href='" + location.pathname + "']").addClass('now');
	$("#mobile-nav a[href='" + location.pathname + "']").parent().addClass('now');

	/*
	$("#mobile-navigation select").val(location.pathname);
	//移动端菜单选项改变的时候，跳转页面到对应地址.
	$("#mobile-navigation select").on("input", function() {
		location.href = $(this).val();
	});
	*/

	//移动端导航菜单展开单击事件.
	$("#mobile-navigation button").on("click", function() {

		//缓存导航菜单jQuery 元素.
		var $nav = $("#mobile-nav");
		//缓存遮罩层 jQuery 元素.
		var $shade = $("#shade");

		/**
		 * 隐藏导航菜单
		 **/
		function hideNav() {
			//取消菜单激活状态.
			$nav.add($shade).removeClass('actived');
			//隐藏遮罩层.
			$shade.hide();
		}

		/**
		 * 显示导航菜单
		 **/
		function showNav(){
			//标记菜单激活状态.
			$nav.add($shade).addClass('actived');
			//显示遮罩层，并且委派遮罩层单击事件。单击遮罩层的时候关闭菜单.
			$shade.show().one("click", hideNav);
		}

		//展示导航.
		showNav();

	});

	//微信文章列表连接，在PC上查看就显示二维码，在移动端则直接打开.
	$(".wechat-qrcode-link").on("click", function() {

		//判断设备是移动端，则直接跳转，并且不再继续.
		if (UA.match(/mobile/i)) {
			return true;
		}

		//缓存当前单击元素.
		var $that = $(this);
		//缓存遮罩层 jQuery 元素.
		var $shade = $("#shade");

		var href = $that.attr("href");
		var qrcode = $that.data("qrcode");

		var backgroundStyle = {
			"background-image": 'url(' + qrcode + ')',
			"background-size": "360px",
			"background-repeat": "no-repeat",
			"background-position": "50% 50%"
		};

		console.log(backgroundStyle);

		//放置二维码，并且设置点击关闭事件，
		$shade.css(backgroundStyle).show().one("click", function() {
			$(this).removeAttr('style');
		});

		//阻止浏览器跳转.
		return false;

	});

	// 代码高亮处理，且显示行号.
	$("pre").addClass("line-numbers").find("code").attr("class", function(i, oldClass) {
		if( !oldClass ) { return ""; }
		return 'language-' + oldClass;
	});
	//全部 class language-xxxx 调用 Prism.highlightElement() 初始化语法高亮.
	Prism.highlightAll();

}

//InstantClick Ready.
//由于启用了黑科技，所以触发方式调整.
InstantClick.on("change", function() {
	ready(jQuery);
});
//启用黑科技.
InstantClick.init();

//如果是 Chrome 浏览器，则在控制台放置一句提示.
/chrome/i.test(UA) && !function() {
	console.log(
		'%c 喜欢看ED少年网站代码？\n 加QQ群讨论 %c74902227 ',
		'color: #8c8481; font-size: 18px;',
		'color: #534d4b; font-size: 24px;'
	);
}();
